// 工具函数
// utils/utils.js
import dayjs from 'dayjs'
const utils = {
  /**
   * 用户消息反馈
   * @param {string} title 文字提示的内容
   */
  toast(title = '数据加载失败...', icon = 'none') {
    setTimeout(() => {
      wx.showToast({
        title,
        mask: true,
        icon,
      })
    }, 0);
  },
  /**
   * 判断是否是页面的路径是不是tabar得
   * @param {string} path 页面路径
   * @returns  true | false
   */
  isTaBarPage(path = '') {
    // __wxConfig对象中包含了有用的信息
    // console.log(__wxConfig,'__wxConfig');
    const tabBarList = __wxConfig.tabBar.list
    // 获取tabBar的页面路径
    const tabBarPages = tabBarList.map((item) => {
      return '/' + item.pagePath.split('.')[0]
    })

    return tabBarPages.includes(path)
  },

  // 格式化显示时间
  dataFormat(timestamp) {
    // 创建时间对象
    const date = new Date(timestamp)
    // 获取年月日,以年月日形式展示数据
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate()
    return [year, month, day].map(item => item >= 10 ? item : '0' + item).join('-')
  },
  // 获取月份
  getMonth(timestamp) {
    // 创建时间对象
    const date = new Date(timestamp)
    const month = date.getMonth() + 1
    return month + '月'
  },
  // 获取日子
  getDay(timestamp) {
    // 创建时间对象
    const date = new Date(timestamp)
    const day = date.getDate()
    return day
  },
  // 时间戳转年月时间 // 2023年08月
  timeConversion(timestamp) {
    const date = new Date(timestamp);
    const year = date.getFullYear();
    const month = date.getMonth() + 1; // getMonth() 返回值从 0 开始，因此需要加 1
    const formattedDate = year + "年" + (month < 10 ? "0" + month : month) + "月";
    return formattedDate
  },

  // 手机号中间四位变*
  getPrivateMobile(tel) {
    const reg = /^(\d{3})\d*(\d{4})$/
    return tel.replace(reg, '$1****$2')
  },


  formatMsgTime(timespan) {
    const dateTime = new Date(timespan) // 将传进来的字符串或者毫秒转为标准时间
    const year = dateTime.getFullYear()
    const month = dateTime.getMonth() + 1
    const day = dateTime.getDate()
    const hour = dateTime.getHours()
    const minute = dateTime.getMinutes()
    // const second = dateTime.getSeconds()
    const millisecond = dateTime.getTime() // 将当前编辑的时间转换为毫秒
    const now = new Date() // 获取本机当前的时间
    const nowNew = now.getTime() // 将本机的时间转换为毫秒
    let milliseconds = 0
    let timeSpanStr
    milliseconds = nowNew - millisecond
    if (milliseconds <= 1000 * 60 * 1) { // 小于一分钟展示为刚刚
      timeSpanStr = '刚刚'
    } else if (1000 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60) { // 大于一分钟小于一小时展示为分钟
      timeSpanStr = Math.round((milliseconds / (1000 * 60))) + '分钟前'
    } else if (1000 * 60 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24) { // 大于一小时小于一天展示为小时
      timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60)) + '小时前'
    } else if (1000 * 60 * 60 * 24 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24 * 15) { // 大于一天小于十五天展示位天
      timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60 * 24)) + '天前'
    } else if (milliseconds > 1000 * 60 * 60 * 24 * 15 && year === now.getFullYear()) {
      timeSpanStr = (month < 10 ? "0" + month : month) + '-' + (day < 10 ? "0" + day : day) + ' ' + (hour < 10 ? "0" + hour : hour) + ':' + (minute < 10 ? "0" + minute : minute)
    } else {
      timeSpanStr = (year < 10 ? "0" + year : year) + '-' + (month < 10 ? "0" + month : month) + '-' + (day < 10 ? "0" + day : day) + ' ' + (hour < 10 ? "0" + hour : hour) + ':' + (minute < 10 ? "0" + minute : minute)
    }
    return timeSpanStr
  },

  /**
   * 将时间戳转换成2023-09格式
   * @param 时间戳
   * @returns  2023-09
   */
  getTimeBar(time) {
    const date = new Date(time);
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0'); //月份从0开始，需要加1，补足两位数

    const formattedDate = year + "-" + month;
    return formattedDate
  },
  /**
   * 计算收入和支出
   * @param 数组
   * @returns  {收入，支出}
   */
  getBill(list) {
    // 收入
    let income = 0
    // 支出
    let expenditure = 0
    list.forEach(item => {
      if (item.coinType === '充值' || item.coinType === '被打赏' || item.coinType === '退款') {
        income += +item.sCoin
      } else {
        expenditure += +item.sCoin
      }
    });
    return {
      income,
      expenditure
    }
  },
  /**
   * 优化数字显示
   * @param number
   * @returns  k,w
   */
  formatNumber(num) {
    return num >= 1e4 ? (num / 1e4).toFixed(1) + 'w' : num
  }

}




// 挂载到全局对象 wx
wx.utils = utils
// 模块导出
export default utils